Quiescing work bounded by application transactions consisting of multiple relational database transactions

ABSTRACT

A database management system, method, and program product for quiescing workload that involves multiple relational database transactions that are bounded by application transactions.

FIELD OF THE INVENTION

[0001] The invention relates to database management systems and moreparticularly to quiescing work that involves multiple relationaldatabase transactions that are bounded by application transactions.

BACKGROUND OF THE INVENTION

[0002] Content Management is an infrastructure to manage the fullspectrum of digital information. Large collections of scanned images,facsimiles, electronic office documents, XML and HTML files, computeroutput, audio, video, multimedia, and virtual reality content can bestored and accessed through the content management system. The contentmanagement system integrates content with line of business, customerservice, ERP, digital asset management, distance learning, Web contentmanagement or other applications to accelerate benefits across theenterprise.

[0003] In one embodiment the content manager product may be visualizedas a triangle, its three vertices being the client, a library server andan object server (resource manager). The client is the user's interfacewhich gives the user the capability of storing, searching for, and,marking-up documents (or to use the more general term, objects). Thelibrary server is the equivalent of a card catalog which holdsinformation about the objects, including their location. The objectserver (OS), also referred to herein as the resource manager (RM) iswhere either the actual object or a pointer to the actual object isstored.

[0004] The core Library Server logic (except for system utilities andhousekeeping tasks) is packaged as a set of relational data base (RDB)stored procedures (SPs) containing embedded SQL statements. Each storedprocedure (SP) is precompiled and runs on a relational database (RDB)server. Thus each Library Server (LS) process is merely a relationaldatabase (RDB) server process. The interface to a Library Server is SQL,through which either stored procedures (SPs) can be called or SQL SELECTstatements (including cursor support) can be executed. Remote access toLibrary Server is via a relational database (RDB) client.

[0005] The Resource Managers (RMs) may support different/multiple accessprotocols. The resource manager (RM)—object server (OS) supports theHTTP protocol. The basic information entities managed by the LibraryServer are “items.” “Items” as used herein come in two types, simpleitems and resource items. Resource items can have content associatedwith them that is stored in one or more Resource Managers. Resourceitems point to their content via Resource URL-RELATED DATA. Oneattribute of “items” is their “folder.”

[0006] The library server (LS) and object server (OS) (resource manager(RM)) are separate processes, often running on different machines. Inoperation, clients first contact the library server (LS) tocreate/update an index for an object, and to determine where the objectis to be stored/replaced. The client then sends a request to the objectserver (OS) to store/replace the object.

[0007] To keep track of data entries, tens or hundreds attributes(parameters) may be defined to multiple databases and file systems in adatabase management system (DBMS). For example, a meaningful informationentity may have multiple attributes associated with it. It is alsofrequently necessary to add, change, and delete the attributesassociated with an information entity. This gives rise to problems incoordinating the backup of the multiple databases and file systems.

[0008] One approach to this problem is in the IBM Content ManagerVersion 8, which implements a single CM transaction involving thelibrary server with two separate RDB transactions and data interchangewith one or more resource managers. Specifically, the logic involved toimplement a content manager transaction is:

[0009] 1) Call the library server to “prepare” to store an object andcommit the LS transaction.

[0010] 2) Store the object on a resource manager, and commit the RMtransaction.

[0011] 3) Call the library server to store information about the object,and commit the LS transaction.

[0012] 4) Send an “end transaction” request to the resource manager tofinalize the changes and commit the RM transaction.

[0013] One problem arises because Step 2, storing the object on aresource manager, and committing the RM transaction, can require avariable amount of time depending, for example, on the size of theobject and the network speed. Quiescing the workload is possible, butthe fact that a CM transaction involves multiple RDB transactions meansmerely quiescing the workload does not help solve the coordinationproblem. There can be cases where the operation is initiated in step 1,calling the library server to “prepare” to store an object and committhe LS transaction, but by the time the library server is called toactually “store” information about the object, and commit the LStransaction, the requests would be rejected by the RDBMC.

[0014] Thus a further need exists to be able to “pause” the libraryserver to enable coordinated backup of all servers, but withoutinterrupting a transaction which is in progress.

[0015] A still further need exists to be able to consider the full CMtransaction instead of the elemental LS and RM transactions, and tothereby reject new operations while allowing existing operations tocomplete.

SUMMARY OF THE INVENTION

[0016] According to our invention it is possible to effectivelycoordinate the backup of the multiple databases and file systems in aContent Manager system by being able to “pause” the library server toenable the desired coordinated backup of all servers, and to accomplishboth “pausing” and coordinated backup without interrupting a transactionwhich is in progress. We accomplish this by a consideration of the efull CM transaction instead of the elemental LS and RM transactions. Theeffect is to allow existing operations to complete. “Pausing” thelibrary server enables coordinated backup of all servers, but withoutinterrupting a content management transaction which is in progress. Wheninitiated, any requests to the library server other than simply callingthe library server to store information about the object and commit theLS transaction, should be rejected. Those requests which are already inprogress are allowed to complete, but only if they complete within aninterval specified by the administrator.

[0017] Because a CM transaction involves multiple RDB transactions,quiescing RDBMS work does not solve the problem of coordinating thebackup of multiple databases and file systems. There will still be caseswhere between the time of calling the library server to “prepare” tostore an object and to “commit” the LS transaction, and, subsequently,calling the library server to actually store information about theobject, and commit the LS transaction, pending requests are rejected bythe RDMS. More precisely, treating the full CM transaction as a singleintegrated transaction instead of the elemental LS and RM transactions,it is possible to reject new operations but allow existing operations tocomplete.

[0018] This function will be accomplished by

[0019] 1) Introducing a value in a control table, for example, thesystem control table, to indicate the time in the future at which theworkload is to be quiesced.

[0020] 2) Using a maximum transaction value to limit the time duringwhich step 3 may be called, and reject to step 3 and the store operationafter the MAXTXDURATION value.

[0021] 3) When the specified time interval or duration in which theworkload is to be quiesced is reached, each request arriving at theserver is checked to see if a transaction is in progress. If noincomplete transactions exist, the newly arriving request will berejected with a new return code. If such an incomplete transactionexists, the request will processed.

[0022] 4) When the library server no longer needs to be quiesced, suchas at the completion of a backup, the value in the control table thatindicates the time in the future at which the workload is to be quiescedfield may be set to null or to a future time.

[0023] A still further aspect of our invention is a program product.

THE FIGURES

[0024]FIG. 1 is an overview of the three elements of a contentmanagement system, the client application, the library server, and theresource manager, and the actions between them in-storing and replacingan item.

[0025]FIG. 2 is a high level flowchart of the method of the invention.

DETAILED DESCRIPTION OF THE INVENTION

[0026]FIG. 1 illustrates the client, the library server, and theresource server, and how they interact to store an item. As shown in theFIGURE, a client application, a library server, and a resource managerare running. The library server includes library server storedprocedures, a library server database, and a library server trackingtable. The resource manager includes an HTTP server, a ContentManagement resource manager “Store Object” agent, a resource managertracking table data base, and a file system.

[0027] At a high level, the client begins a transaction, 1, by sending arequest to the library server to create a catalog entry (as an indexentry) for a content management object, 3. In response, the clientreceives information back from the library server as to where to storethe object, 4. The client then sends a request to the resource managerto store the object, 5. The client receives a response, 6, from theresource manager with object metadata This metadata includes, by way ofexemplification, the object name, size, and creation timestamp. Theclient sends this metadata to the library server, 7, where it is storedin one or more tables. The library server replies to the clientindicating success or failure of the of the metadata update, 8, at whichpoint the client commits the library server updates, 9. After committingthe library server updates, the client sends “end transactions” to theresource manager to delete its tracking table record. The clientreceives a reply from the resource manager indicating success or failurein completing the processing requested.

[0028] The method, system, and program product described herein “pauses”the library server to enable coordinated backup of all servers, withoutinterrupting a transaction which is in progress. When initiated, anyrequests to the library server other than checking to see if atransaction is in progress and initiating appropriate with respectthereto (i.e., if no incomplete transactions exist, the newly arrivingrequest will be rejected with a new return code, but if such anincomplete transaction exists, the request will process) will berejected. Those requests which are already in progress are allowed tocomplete, but only if they can complete within an interval specified bythe administrator or otherwise set in the system.

[0029] Within the context of considering the full CM transaction insteadof the elemental LS and RM transactions, it is possible to reject newoperations but allow existing operations to complete. According to ourinvention and as illustrated by the flowchart of FIG. 2, thisaccomplished by

[0030] 1) Introducing a value in a control table, for example, thesystem control table (typically in the library server), to indicate thetime in the future at which the workload is to be quiesced. Introducinga PAUSESERVER value in the system control table. This is illustrated byblock 21 of FIG. 2. This will be defined as a timestamp, and indicatesthe time in the future at which the workload is to be quiesced.

[0031] 2) The existing MAXTXDURATION value will be used to limit thetime during which step 3, below, may be called. After this time haspassed, any call to step 3, below, would be rejected and the storeoperation to the resource manager would be “rolled back” using existingCM logic. This uses the maximum transaction value to limit the timeduring which step 3 may be called, and reject to step 3 and the storeoperation after the MAXTXDURATION value. Typically the MAXTXDURATIONvalue is stored in the library server. This is illustrated by block 22of FIG. 2.

[0032] 3) When the specified time interval or duration in which theworkload is to be quiesced is reached, each request arriving at theserver is checked to see if a transaction is in progress. If noincomplete transactions exist, the newly arriving request will berejected with a new return code.

[0033] If such an incomplete transaction exists, the request will beprocessed. When the time specified in PAUSESERVER is reached, eachrequest arriving at the server will be checked to see if a transactionis in progress. This is accomplished by querying the library servertransaction table ICMSTIXLT to see if incomplete transactions which werestarted more recently than the current time minus the time inMAXTXDURATION for the logged on user exist. If not, the request will berejected with a new return code interpreted by client applications todisplay a message such as “CM Library Server has been paused—try later”.If such a transaction record exists, the request will processed. Thisstep is illustrated by block 23 of FIG. 2.

[0034] 4) When the library server no longer needs to be quiesced, suchas at the completion of a backup, the value in the control table thatindicates the time in the future at which the workload is to bequiesced, i.e., the PAUSESERVER field, may be set to null or to a futuretime. This is illustrated in block 24 of FIG. 2

[0035] A program product is computer readable program code on one ormore media, said program code being capable of controlling andconfiguring a computer system having one or more computers. The one ormore computers may be configured and controlled to carry out the methoddescribed herein. Alternatively, the program may be one or more ofencrypted or compressed for subsequent installation, and may be residenton media or on an installation server.

[0036] While our invention has been described with respect to certainpreferred embodiments and exemplifications, it is not intended to belimited thereby, but solely by the claims appended hereto.

We claim:
 1. A method of quiescing workload in a content manager systemhaving a library server and a resource server, each of said serversincluding a relational database, said method comprising: 1) introducinga value in a control table said value indicating the time in the futureat which workload is to be quiesced; 2) setting a maximum transactiontime value limiting the time during which transaction completion andquiescence may be determined for a particular transaction; 3) when themaximum transaction time value set in step 2) is reached, each requestarriving at the server is checked to determine if a later incompletetransaction is in progress, a) rejecting the newly arriving request ifno incomplete transaction exists and b) processing the newly arrivingrequest if incomplete transaction exists; and 4) resetting the value inthe control table when the library server no longer needs to be quiescedsuch as at the completion of a backup, the value in the control table,that indicates the time in the future at which the workload is to bequiesced may be set to null or to a future time:
 2. The method of claim1 comprising resetting the value in the control table when the libraryserver no longer needs to be quiesced at the completion of a backup. 3.The method of claim 2 comprising resetting the value in the controltable to null.
 4. The method of claim 2 comprising resetting the valuein the control table to a future time.
 5. The method of claim 1comprising introducing a timestamp in the control table, said valueindicating the time in the future at which workload is to be quiesced.6. The method of claim 1 comprising setting a maximum transaction timevalue limiting the time during which transaction completion andquiescence may be determined for a particular transaction, whereby tolimit the time during which a request arriving at the server is checkedto determine if a later incomplete transaction is in progress.
 7. Themethod of claim 6 wherein after the maximum transaction time value haspassed, rejecting any call the store operation.
 8. A content managementsystem comprising a plurality of relational database management systemsin a client application, a library server, and a resource manager, andfurther comprising: 1) a system control table, said system control tableincluding a timestamp indicating a time in the future at which workloadis to be quiesced; 2) a stored maximum transaction time duration valueto limit the time during which incomplete transactions may be executed;and 3) programmed logic for setting said time stamp to “null” or afuture time when the library server no longer needs to be quiesced. 9.The content management system of claim 8 wherein the library serverfurther comprises the system control table.
 10. The content managementsystem of claim 9 wherein the system control table further comprises thestored maximum transaction time duration value.
 11. A program productcomprising computer readable program code on a medium, said computerreadable program code being adapted to configure and control one or orecomputers to operate a relational database content management systemhaving a library server and a resource server, each of said serversincluding a relational database to carry out a method comprising thesteps of 1) introducing a value in a control table said value indicatingthe time in the future at which workload is to be quiesced; 2) setting amaximum transaction time value limiting the time during whichtransaction completion and quiescence may be determined for a particulartransaction; 3) when the maximum transaction time value set in step 2)is reached, each request arriving at the server is checked to determineif a later incomplete transaction is in progress, a) rejecting the newlyarriving request if no incomplete transaction exists and b) processingthe newly arriving request if incomplete transaction exists; and 4)resetting the value in the control table when the library server nolonger needs to be quiesced such as at the completion of a backup, thevalue in the control table, that indicates the time in the future atwhich the workload is to be quiesced may be set to null or to a futuretime.
 12. The program product of claim 11 wherein the method comprisesresetting the value in the control table when the library server nolonger needs to be quiesced at the completion of a backup.
 13. Theprogram product of claim 12 wherein the method comprises resetting thevalue in the control table to null.
 14. The program product of claim 11wherein the method comprises resetting the value in the control table toa future time.
 15. The program product of claim 11 wherein the methodcomprises introducing a timestamp in the control table ,said valueindicating the time in the future at which workload is to be quiesced.16. The program product of claim 11 wherein the method comprises settinga maximum transaction time value limiting the time during whichtransaction completion and quiescence may be determined for a particulartransaction, whereby to limit the time during which a request arrivingat the server is checked to determine if a later incomplete transactionis in progress.
 17. The program product of claim 16 wherein after themaximum transaction time value has passed, rejecting any call the storeoperation.